home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ABERMUD.ZIP / MOBILE.C < prev    next >
C/C++ Source or Header  |  1989-07-08  |  6KB  |  261 lines

  1. #include <stdio.h>
  2. #include "files.h"
  3.  
  4. extern FILE *openlock();
  5. extern char *pname(  ) ;
  6. extern char *oname(  ) ;
  7.  
  8. on_timing()
  9. {
  10.     if(randperc()>80) onlook();
  11. }
  12.  
  13. onlook(  )
  14.     {
  15. long a ;
  16. extern long mynum ;
  17. chkfight( fpbns( "shazareth" ) ) ;
  18. if( !iscarrby( 45, mynum ) )chkfight( fpbns( "wraith" ) ) ;
  19. chkfight( fpbns( "bomber" ) ) ;
  20. chkfight( fpbns( "owin" ) ) ;
  21. chkfight( fpbns( "glowin" ) ) ;
  22. chkfight( fpbns( "smythe" ) ) ;
  23. chkfight( fpbns( "dio" ) ) ;
  24. if( !iscarrby( 45, mynum ) ) chkfight( fpbns( "zombie" ) ) ;
  25. chkfight( fpbns( "rat" ) ) ;
  26. chkfight( fpbns( "ghoul" ) ) ;
  27. chkfight( fpbns( "ogre" ) ) ;
  28. chkfight( fpbns( "riatha" ) ) ;
  29. chkfight( fpbns( "yeti" ) ) ;
  30. chkfight( fpbns( "guardian"));
  31. if( iscarrby( 32, mynum ) ) dorune(  ) ;
  32. if(phelping(mynum)!=-1) helpchkr();
  33.     }
  34.  
  35.  chkfight( x )
  36.     {
  37.     extern long curch ;
  38.     extern long mynum ;
  39.     if( x<0 ) return ; /* No such being */
  40.     consid_move( x); /* Maybe move it */
  41.     if( !strlen( pname( x ) ) ) return ;
  42.     if( ploc( x )!=curch ) return ;
  43.     if( pvis( mynum ) ) return ; /* Im invis */
  44.     if(randperc()>40) return;
  45. if( ( x==fpbns( "yeti" ) )&&( ohany( ( 1<<13 ) ) ) )
  46. {
  47. return ;
  48. }
  49.     mhitplayer( x, mynum ) ;
  50.     }
  51.  
  52.  consid_move(x)
  53.  {;}
  54.  
  55.  crashcom(  )
  56.     {
  57.     extern long my_lev ;
  58.     if( my_lev<10 )
  59.        {
  60.        bprintf( "Hmmm....\n" ) ;
  61.        bprintf( "I expect it will sometime\n" ) ;
  62.        return ;
  63.        }
  64.     bprintf( "Bye Bye Cruel World...\n" ) ;
  65.     sendsys( "", "", -666, 0, "" ) ;
  66.     rescom(  ) ;
  67.     }
  68.  
  69.  singcom(  )
  70.     {
  71.     if( chkdumb(  ) ) return ;
  72.     sillycom( "\001P%s\001\001d sings in Gaelic\n\001" ) ;
  73.     bprintf( "You sing\n" ) ;
  74.     }
  75.  
  76.  spraycom(  )
  77.     {
  78.     long a, b ;
  79.     long c ;
  80.     char bk[ 128 ] ;
  81.     extern long wordbuf[  ] ;
  82.     extern long mynum ;
  83.     extern long curch ;
  84.     b=vichere( &a ) ;
  85.     if( b== -1 ) return ;
  86.     if( brkword(  )== -1 )
  87.        {
  88.        bprintf( "With what ?\n" ) ;
  89.        return ;
  90.        }
  91.     if( !strcmp( wordbuf, "with" ) )
  92.        {
  93.        if( brkword(  )== -1 )
  94.           {
  95.           bprintf( "With what ?\n" ) ;
  96.           return ;
  97.           }
  98.        }
  99.     c=fobna( wordbuf ) ;
  100.     if( c== -1 )
  101.        {
  102.        bprintf( "With what ?\n" ) ;
  103.        return ;
  104.        }
  105.     switch( c )
  106.        {
  107.        default:
  108.           bprintf( "You can't do that\n" ) ;
  109.           break ;
  110.           }
  111.     return ;
  112.     }
  113.  
  114.  /* More new stuff */
  115.  
  116.  dircom(  )
  117.     {
  118.     long a ;
  119.     char b[ 40 ] ;
  120.     char d[ 40 ] ;
  121.     long c ;
  122.     extern long my_lev ;
  123.     extern long numobs ;
  124.     if( my_lev<10 )
  125.        {
  126.        bprintf( "That's a wiz command\n" ) ;
  127.        return ;
  128.        }
  129.     a=0 ;
  130.     while( a<numobs )
  131.        {
  132.        c=findzone( oloc( a ), b ) ;
  133.        sprintf( d, "%s%d", b, c ) ;
  134.        if( ocarrf( a ) ) strcpy( d, "CARRIED" ) ;
  135. if( ocarrf( a )==3 ) strcpy( d, "IN ITEM" ) ;
  136.        bprintf( "%-13s%-13s", oname( a ), d ) ;
  137.        if( a%3==2 )bprintf( "\n" ) ;
  138.        if( a%18==17 ) pbfr(  ) ;
  139.        a++ ;
  140.        }
  141.     bprintf( "\n" ) ;
  142.     }
  143.  
  144.  sys_reset(  )
  145.     {
  146.     extern long my_lev ;
  147.     char xx[ 128 ] ;
  148.     FILE *fl ;
  149.     long t, u ;
  150.     if( tscale(  )!=2 )
  151.        {
  152.        bprintf( "There are other people on.... So it wont work!\n" ) ;
  153.        return ;
  154.        }
  155.     time( &t ) ;
  156.     fl=openlock( RESET_N, "ruf" ) ;
  157.     if(fl==NULL) goto errk;
  158.     fscanf( fl, "%ld", &u ) ;
  159.     fclose(fl ) ;
  160. if( ( t-u<( 3600 ) )&&( u<t ) )
  161.        {
  162.        bprintf( "Sorry at least an hour must pass between resets\n" ) ;
  163.        return ;
  164.        }
  165. errk:t=my_lev ;
  166.     my_lev=10 ;
  167.     rescom(  ) ;
  168.     my_lev=t ;
  169.     }
  170.  
  171.  
  172.  personin( x )
  173.     {
  174.     long a ;
  175.     a=0 ;
  176.     while( a<48 )
  177.        {
  178.        if( ( !strcmp( pname( a ) ) )&&( ploc( a )==x ) ) return( a ) ;
  179.        a++ ;
  180.        }
  181.     return( -1 ) ;
  182.     }
  183.  dorune(  )
  184.     {
  185.     char bf[ 128 ] ;
  186.     long ct ;
  187.     extern long mynum, my_lev, curch ;
  188.     extern long in_fight;
  189.     if(in_fight) return;
  190.     ct=0 ;
  191.     while( ct<32 )
  192.        {
  193.        if( ct==mynum ){ct++ ;continue ;}
  194.        if( !strlen( pname( ct ) ) ) {ct++ ;continue ;}
  195.        if( plev( ct )>9 ) {ct++ ;continue ;}
  196.        if( ploc( ct )==curch ) goto hitrune ;
  197.        ct++ ;
  198.        }
  199.     return ;
  200.     hitrune:if( randperc(  )<9*my_lev ) return ;
  201.     if( fpbns( pname( ct ) )== -1 ) return ;
  202.     bprintf( "The runesword twists in your hands lashing out savagely\n" ) ;
  203.     hitplayer(ct,32);
  204.     }
  205.  
  206.  
  207.  pepdrop(  )
  208.     {
  209.     extern long my_sco ;
  210.     long a, b ;
  211.     extern char globme[];
  212.     extern long mynum ;
  213.     extern long curch ;
  214.     sendsys( " ", " ", -10000, curch, "You start sneezing ATISCCHHOOOOOO!!!!\n" ) ;
  215.     if( ( !strlen( pname( 32 ) ) )||( ploc( 32 )!=curch ) )
  216.     return ;
  217.     /* Ok dragon and pepper time */
  218.     if( ( iscarrby( 89, mynum ) )&&( ocarrf( 89 )==2 ) )
  219.        {
  220.        /* Fried dragon */
  221.        strcpy( pname( 32 ), "" ) ; /* No dragon */
  222.        my_sco+=100 ;
  223.        calibme(  ) ;
  224.        return ;
  225.        }
  226.     else
  227.        {
  228.        /* Whoops !*/
  229.        bprintf( "The dragon sneezes forth a massive ball of flame.....\n" ) ;
  230.        bprintf( "Unfortunately you seem to have been fried\n" ) ;
  231.        loseme(  ) ;
  232.        crapup( "Whoops.....   Frying tonight" ) ;
  233.        }
  234.     }
  235.  
  236.  dragget(  )
  237.     {
  238.     extern long curch, my_lev ;
  239.     long a, b ;
  240. long l ;
  241. if( my_lev>9 ) return( 0 ) ;
  242. l=fpbns( "dragon" ) ;
  243. if( l== -1 ) return( 0 ) ;
  244.     if( ploc( l )!=curch ) return( 0 ) ;
  245.     return( 1 ) ;
  246.     }
  247.  
  248. helpchkr()
  249. {
  250.     extern long mynum;
  251.     extern long curch;
  252.     extern long i_setup;
  253.     long x=phelping(mynum);
  254.     if(!i_setup) return;
  255.     if(!strlen(pname(x))) goto nhelp;
  256.     if(ploc(x)!=curch) goto nhelp;
  257.     return;
  258.     nhelp:bprintf("You can no longer help \001c%s\001\n",pname(x));
  259.     setphelping(mynum,-1);
  260. }
  261.